package com.briup.cms.util;

import com.briup.cms.exception.CustomException;
import org.springframework.lang.Nullable;
import org.springframework.util.StringUtils;

/**
 * 断言工具类：当项目中需要进行逻辑判断时，调用封装方法
 */
public abstract class CMSAssert {
    /**
     * 判断是否为null,如果为null.抛出异常
     * @param object  需要判断的对象
     * @param rc  提示的信息
     */
    public static void notNull(@Nullable Object object, ResultCode rc) {
        if (object == null) {
            throw new CustomException(rc);
        }
    }

    /**
     * 当条件不成立，返回false时，通过抛出异常表示信息
     * @param expression 表达式
     * @param rc  提示信息
     */
    public static void isTrue(boolean expression, ResultCode rc) {
        if (!expression) {
            throw new CustomException(rc);
        }
    }

    /**
     * 判断字符串参数是否为空
     * @param text
     * @param rc
     */
    public static void hasText(@Nullable String text, ResultCode rc) {
        if (!StringUtils.hasText(text)) {
            throw new CustomException(rc);
        }
    }
}
